load("@rules_cc//cc:defs.bzl", "cc_library")

package(default_visibility = ["//visibility:public"])

cc_library(
    name = "boost.signals2",
    hdrs = glob(
        [
            "include/**/*.hpp",
        ],
        exclude = [
            "include/boost/signals2/detail/**/*.hpp",
            "include/boost/signals2/predestructible.hpp",
            "include/boost/signals2/preprocessed_signal.hpp",
            "include/boost/signals2/preprocessed_slot.hpp",
            "include/boost/signals2/variadic_signal.hpp",
            "include/boost/signals2/variadic_slot.hpp",
        ],
    ),
    features = [
        "parse_headers",
    ],
    includes = ["include"],
    textual_hdrs = [
        "include/boost/signals2/predestructible.hpp",
        "include/boost/signals2/preprocessed_signal.hpp",
        "include/boost/signals2/preprocessed_slot.hpp",
        "include/boost/signals2/variadic_signal.hpp",
        "include/boost/signals2/variadic_slot.hpp",
    ] + glob([
        "include/boost/signals2/detail/**/*.hpp",
    ]),
    deps = [
        "@boost.assert",
        "@boost.bind",
        "@boost.config",
        "@boost.core",
        "@boost.function",
        "@boost.iterator",
        "@boost.mpl",
        "@boost.optional",
        "@boost.parameter",
        "@boost.preprocessor",
        "@boost.smart_ptr",
        "@boost.throw_exception",
        "@boost.tuple",
        "@boost.type_traits",
        "@boost.variant",
    ],
)
